In many manufacturing industries imaging systems (i.e., cameras) are used to monitor manufacturing processes and gather information for quality control and or process design purposes. To this end, a camera is typically mounted in a position adjacent a manufacturing line station so that work pieces located at the station are within a field of view of the camera. A controller is linked in some fashion to the camera to control camera activation to periodically generate exposures corresponding to the field of view. After generating an exposure, the camera may do any of several different things with the exposure, depending on the function of the imaging system.
Often the imaging system will be part of a much larger control system wherein operation of the camera to collect or forego collecting information is governed by a large set of rules and wherein camera operation and associated functions are an integral part of proper overall system operation. In these cases the controller is typically positioned remotely from the camera, collects information from many system sources and determines how to control the camera as a function thereof.
There are several different ways in which a controller can be linked to a camera. One exemplary way to link a controller to a camera is via a dedicated hardwire control line that directly and solely links the controller and camera. This one-to-one communication solution is advantageous as signals generated by the controller are provided directly to the camera and therefore camera operation can be controlled in a “deterministic” fashion. Herein, the term deterministic means that, given a specific controller signal and assuming that the camera is operating properly, a known and “determined” action is performed by the camera. Thus, in dedicated hardwire systems controller signals are guaranteed to be delivered to the camera.
While hardwire systems are deterministic and therefore advantageous, such systems have several shortcomings. First, not surprisingly, because such systems require dedicated hardwires between each two system components that may communicate, these systems are relatively hardware intensive and therefore relatively expensive. Second, these systems are particularly costly to set up as the labor required to run dedicated lines between each two system components is excessive. Third, even after set up, these systems are difficult to maintain as they are relatively complicated. For instance, a break in any of the dedicated lines requires maintenance personnel to track and trace the line between linked devices to identify and repair the break. Fourth, the number of links between system devices becomes unwieldy. For instance, a single controller may need to communicate with several hundred different system devices (i.e., cameras) in a complex system and therefore may need hundreds of inputs and outputs. Most controllers are not configured to support such massive I/O needs. Fifth, hardwired systems also have the disadvantage of reduced signal strength over long hardwire distances and therefore hardwire configurations are further limited in possible physical configurations.
One other solution for linking a controller to a camera is to use a computer network system. One particularly useful system type is generally referred to as an Ethernet. An Ethernet, in addition to having some advantageous operational features, is particularly advantageous because Ethernet hardware is already extremely prevalent throughout the facilities used within many industries for information interchange and therefore control schemes that operate over the Ethernet can “piggy-back” on existing hardware to provide cost effective functionality.
As in the case of many networking systems, the Ethernet is an electronic network that links various computing devices together and enables communication between the linked devices. The Ethernet generally links various network devices together via cables, data busses, fiber optics, etc., in series and parallel network structures. The linking structure is referred to hereinafter as the Ethernet channel. To communicate, an originating Ethernet device transmits a message (referred to hereinafter as a data packet) on the channel to a destination device that, in part, earmarks the destination device via a destination device address. When the destination device receives the packet, the destination device recognizes the packet as targeting the destination device via the address and accesses packet data to perform some function associated therewith.
Ethernet systems like the one described briefly above overcome several of the problems with hardwired systems. For instance, because devices can be linked in series and parallel instead of in a one-to-one relationship, hardware costs are reduced appreciably. In addition, the task of setting up an Ethernet system is relatively simple when compared to hardwire systems as new devices can be linked to existing Ethernet cables and other transmission medium. Set up costs are further reduced as each Ethernet device manufactured is provided a device unique 48 bit address. Therefore, once hooked up to an Ethernet, a device can be uniquely identified via its address without worrying about network structure and where within the network as a whole the device resides.
Moreover, because Ethernet systems have relatively simple configurations the systems are easy to maintain. Furthermore, Ethernet devices (i.e., controllers, cameras, etc.) needn't support excessive I/O requirements as a single or small number of I/O ports can be used to communicate with virtually every Ethernet-equipped device linked to a network.
Nevertheless, despite the advantages associated with Ethernet systems, such systems have at least one important shortcoming. Specifically, Ethernet systems are not deterministic. In other words, in the case of the camera example given above, given a specific controller transmitted data packet targeting the camera, a known and “determined” action may not be carried out by the camera. This is because, while Ethernet systems facilitate packet delivery most of the time, a small percentage of the time packets are lost or discarded during delivery. Thus, while Ethernet systems may be sufficient in applications where a small number of lost data packets are tolerable, in many cases and, in particular, in many imaging system applications, such non-deterministic operation is not acceptable. To gain a better understanding of the non-deterministic nature of the Ethernet and the problems associated therewith, it is helpful to examine Ethernet operation in more detail and specifically the rules by which an Ethernet device operates to transmit packets to other devices.
Network device access to a shared Ethernet channel is determined by a set of medium access control (MAC) rules that are embedded in each Ethernet device (i.e., in a device interface). The MAC rules define a protocol commonly referred to as the Carrier Sense Multiple Access with Collision Detection (CSMA/CD) protocol that is described next in the context of an exemplary Ethernet communication process.
The CSMA/CD protocol functions somewhat like a dinner party in a dark room. Everyone around a table at the party listens for a period of quiet before speaking (carrier sense). Once a quite period occurs everyone has an equal opportunity to say something (multiple access). If two people start to speak at the same instant, each person detects the fact that more than one person is speaking (collision detection), quits speaking, and waits until there is another quiet period before attempting to speak again.
To translate this into Ethernet terms, each Ethernet linked device must wait until there is no packet on the channel before transmitting. If some other device is transmitting there will be a packet referred to as a carrier on the channel. All other devices must wait until the carrier ceases before trying to transmit their packets. This process of identifying a carrier on the channel is referred to as carrier sense. When a device senses that the channel is clear, the device transmits its packet to the other network devices. All Ethernet devices are equal in their ability to send packets onto the network (no device gets a higher priority than any other device) (i.e., multiple access).
Ethernet packets are transmitted serially, one bit at a time, over the shared channel to every device attached to the channel. Since packets take a finite time to travel from one end of an Ethernet system to the other, the first bits of a transmitted packet do not reach all parts of the network simultaneously. For this reason it's possible for two devices to sense that the network is idle and to start transmitting their packets simultaneously.
If more than one device transmits on the Ethernet channel at the same moment, the packets are said to “collide”. The network has a way of identifying collisions (i.e., collision detection) and, upon detecting a collision, notifies each network device that a collision has occurred. Upon receiving notice of a collision, each receiving device instantly reschedules its transmissions using a specially designed “backoff” algorithm. As part of the backoff algorithm, the devices involved each choose a random time interval at which to reschedule the transmission of the packets which keeps the devices from making transmission attempts in lock step.
The design of Ethernet systems is such that, when not overloaded, the majority of collisions are resolved in microseconds and therefore a typical collision does not result in a lost packet. Again, in the event of a collision, a transmitting Ethernet device backs off (i.e., waits) for some number of microseconds and then automatically attempts to retransmit its packet.
On a network with heavy traffic loads it may happen that there are multiple collisions for a given packet transmission. If repeated collisions occur for a given transmission, then the devices involved begin expanding the set of potential backoff times from which they chose their random retransmission times.
Repeated collisions for a given packet transmission attempt indicate a busy network. The expanding backoff process, formally known as “truncated binary exponential backoff,” is a clever feature of the Ethernet MAC that provides an automatic method for devices to adjust to traffic conditions on the network. After a set number (e.g., 16) of consecutive collisions for a given transmission attempt, a device finally discards its Ethernet packet.
Thus, the exemplary Ethernet system described above is not determinative because, given a specific control data packet earmarked to be delivered to a camera, there is no guarantee that the packet will be delivered to the camera or, if delivered to the camera, when, within a short period, the packet will be delivered. Again, this uncertainty is not acceptable in many applications and therefore, for these applications, the advantages associated with Ethernet technology have been foregone.
Therefore, it would be advantageous to have a system wherein system devices including controllers and cameras and the like can use an Ethernet to communicate in a deterministic fashion.